In many computer systems, a large amount of silicon area is devoted to cache SRAM for instructions or data. In existing designs, the cache SRAM performs standard cache functions, and additional SRAM is added if any other functions are desired. Such designs experience drawbacks incurred by this extra hardware. There is need for a cache memory that operates in multiple modes to provide enhanced functionality, thereby eliminating the need for additional memory and enhancing the cache functionality.